is-subset(sp) input-sp
returns |yes> if sp is a "subset" of input-sp, else |no>
where subset means: for all kets in sp, they have value <= the value in input-sp
it generalizes the idea of sets and their subsets, since it allows elements to have corresponding coefficients
so for example: asking if {a,c} is a subset of {a,b,c,d,e}
is equivalent to: is-subset(|a> + |c>) (|a> + |b> + |c> + |d> + |e>)
or more compactly: is-subset(split |ac>) split |abcde>
this extends the notion that sets can be represented by "clean" superpositions
and non-clean superpositions represent fuzzy sets
where "clean" means all coefficients of kets are either 0 or 1